import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
import {ElLoading, ElMessage, ElMessageBox} from "element-plus";
import {_exitSend} from "../http/api.js";

// 境内人员数据导出
export const domesticExport = (arrData) => {
    let params = [];
    let time = new Date().getTime();
    let DATA = [
        ['审查项目','人员编号','姓名','出生日期','性别','户籍所在省/自治区/直辖市','户籍所在城市','户籍所在地','当前居住省','当前居住城市','当前居住地','身份证件类型','身份证件号码','人员类型','工作单位','负责单位','通行区域','固定电话','移动电话','电子邮件']
    ]
    arrData.forEach((item) => {
        params.push({
            id:item.id,
            templateId: item.templateId,
            exhibitionId: item.exhibitionId,
            bsState:1,
            uuId:time
        })
        let v = item.value;
        DATA.push([
            '上海奥运资格赛', // 审查项目
            item.id, // 人员编号
            v.idName||'', // 姓名
            v.birthDate||'', // 出生日期
            v.sex||'', //性别
            v.address1||'', // 户籍所在省/自治区/直辖市
            '', // 户籍所在城市
            '', // 户籍所在地
            v.address2||'', // 当前居住省
            '', // 当前居住城市
            '', // 当前居住地
            v.idType||'',//身份证件类型
            v.idCode||'', //身份证件号码
            v.cardTypeTwo || v.cardTypeTwoA||'', //人员类型
            v.unit||'', // 工作单位
            v.unit1||'', //负责单位
            '竞赛场',//通行区域
            v.tell||'',//固定电话
            v.phone||'',//移动电话
            v.email||'',//电子邮件
        ])
    })
    // 将数据转换为工作簿对象
    const workbook = XLSX.utils.book_new();
    const worksheet = XLSX.utils.aoa_to_sheet(DATA);

    // 将工作表添加到工作簿
    XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

    // 将工作簿转换为Blob对象
    const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
    const dataBlob = new Blob([excelBuffer], { type: 'application/octet-stream' });

    // 使用FileSaver保存文件
    saveAs(dataBlob, '境内数据.xlsx');
    _exitSend(params)
        .then(res => {
            console.log(res);
            if(res.data.ok) {
                ElMessage.success('导出成功')
            }
        })
        .catch(err => {
            ElMessage.error('导出异常')
        })
}

//境外人员数据导出

export const overseasExport = (arrData) => {
    let params = [];
    let time = new Date().getTime();
    let DATA = [
        ['重大活动名称','表名','来源及批次','人员类型','中文姓名','英文姓','英文名','性别','国籍','出生日期','证件类型','证件号码','服务机构','职务','出生国家(地区)','永久居住地址','联系电话','手机','电子邮箱','入境日期','出境日期','在华住地']
    ]
    arrData.forEach(item => {
        params.push({
            id:item.id,
            templateId: item.templateId,
            exhibitionId: item.exhibitionId,
            bsState:1,
            uuId:time
        })
        let v = item.value;
        DATA.push([
            '上海奥运资格赛', // 重大活动名称
            '上海奥运资格赛', // 表名
            '公安-'+time,//来源及批次
            v.cardTypeEn||'', // 人员类型
            '',//中文姓名
            v.lastName||'',//英文姓
            v.firstName||'',//英文名
            v.gender||'',// 性别
            v.passportNationality||'', //国籍
            v.dateOfBirth||'', // 出生日期
            '护照',//证件类型
            v.passportNumber||'',//证件号码
            v.organisation||'',//服务机构
            '',//职务
            '',//出生国家(地区)
            '',//永久居住地址
            '',//联系电话
            '',//手机
            '',//电子邮箱
            v.arrivalDate||'',//入境日期
            v.departureDate||'',//出境日期
            '',//在华住地
        ])
    })
    // 将数据转换为工作簿对象
    const workbook = XLSX.utils.book_new();
    const worksheet = XLSX.utils.aoa_to_sheet(DATA);

    // 将工作表添加到工作簿
    XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

    // 将工作簿转换为Blob对象
    const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
    const dataBlob = new Blob([excelBuffer], { type: 'application/octet-stream' });

    // 使用FileSaver保存文件
    saveAs(dataBlob, '境外数据.xlsx');
    _exitSend(params)
        .then(res => {
            console.log(res);
            if(res.data.ok) {
                ElMessage.success('导出成功')
            }
        })
        .catch(err => {
            ElMessage.error('导出异常')
        })
}